﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.Practices.ObjectBuilder;
using GC2.Bussines.BMSeguridad;
using GC2.Entities.Seguridad;
using GC2.ExceptionHandler;
using GC2.Entities.Admin;

public partial class Admin_BuscarEmpleado: GenericPage
{

    #region Propiedades
    Usuarios usuario = new Usuarios();
    private List<Empleados> listaEmpleados
    {
        get
        {
            return (List<Empleados>)Session["listaEmpleados"];
        }
        set
        {
            Session["listaEmpleados"] = value;
        }
    }

    #endregion

    #region Controles

    #region Page_Load
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            SetearCultura();
            SetearConexion();
            registrarScript();
            if (!IsPostBack)
            {
                usuario = (Usuarios)Session["UsuarioActual"];
                string strOkEvent = ClientScript.GetPostBackEventReference(gvEmpleados, string.Empty);
                gvEmpleados.Attributes.Add("gvEmpleados_SelectedIndexChanged", strOkEvent);

                llenarControlesDeQueryString();
                List<Empleados> listaConceptos = new List<Empleados>();

                //llenar este objeto con los datos del empleado a filtrar
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion..

    #region btnBuscar_Click
    protected void btnBuscar_Click(object sender, EventArgs e)
    {
        try
        {
            gridDataBaund();
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region gvEmpleados_PageIndexChanging
    protected void gvEmpleados_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        try
        {
            gvEmpleados.PageIndex = e.NewPageIndex;
            gridDataBaund();
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region gvEmpleados_SelectedIndexChanged
    protected void gvEmpleados_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {
            // Evento manejado por Java.
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region gvEmpleados_RowDataBound
    protected void gvEmpleados_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        try
        {

        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #endregion

    #region Metodos

    #region llenarControlesDeQueryString
    private void llenarControlesDeQueryString()
    {
        try
        {
            if (Request.QueryString["IdEmpleado"] != null)
            {
                txtIdEmpleado.Text = Request.QueryString["IdEmpleado"].ToString();
            }
            if (Request.QueryString["Nombre"] != null)
            {
                txtEmpleado.Text = Request.QueryString["Empleado"].ToString();
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region registrarScript
    private void registrarScript()
    {
        try
        {
            Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "EmpleadoScript",
            @"
        <script language=""javascript"" type=""text/javascript"">
        <!--
        function returnvalue(IdEmpleado, Empleado, Saldo)
        {
            var vIdEmpleado = document.getElementById(IdEmpleado);
            var vEmpleado = document.getElementById(Empleado);
            var vSaldo = document.getElementById(Saldo);

            //para cuando el PopUP fue llamado de una pagina con MasterPage
            if(window.opener.aspnetForm != null)
            {
                if(window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtIdEmpleado != null)
                {
                    window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtIdEmpleado.value = vIdEmpleado.innerHTML;
                }
                if(window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtEmpleado != null)
                {
                    window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtEmpleado.value = vEmpleado.innerHTML;
                }
                if(window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtSaldo != null)
                {
                    window.opener.aspnetForm.ctl00_ContentPlaceHolder1_txtSaldo.value = vSaldo.innerHTML;
                }                  
            }
            window.close();
        }
        //-->   
        </script>
        ");
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #region gridDataBaund
    private void gridDataBaund()
    {
        try
        {
            listaEmpleados = (List<Empleados>)Session["listaEmpleados"];
            Empleados empleado = new Empleados();
            bool bEncontrado = false;
            if (txtIdEmpleado.Text != "")
            {
                empleado.Id_Empleado = Convert.ToInt16(txtIdEmpleado.Text.Trim());
                foreach (Empleados oEmpleado in listaEmpleados)
                {
                    if (empleado.Id_Empleado == oEmpleado.Id_Empleado)
                    {
                        empleado.Nombre = oEmpleado.Nombre;
                        bEncontrado = true;
                        break;
                    }
                }
            }
            if (txtEmpleado.Text != "")
            {
                empleado.Nombre = txtEmpleado.Text.Trim();
                foreach (Empleados oEmpleado in listaEmpleados)
                {
                    if (empleado.Nombre == oEmpleado.Nombre)
                    {
                        empleado.Nombre = oEmpleado.Nombre;
                        bEncontrado = true;
                        break;
                    }
                }
            }
            if (bEncontrado)
            {
                List<Empleados> listTemp = new List<Empleados>();
                listTemp.Add(empleado);
                gvEmpleados.DataSource = listTemp;
            }
            else
            {
                gvEmpleados.DataSource = listaEmpleados;
            }
            gvEmpleados.DataBind();
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    #endregion

    #endregion
}

